home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / grafik / 3d & render tools / irit / contrib / scripts / queen.irt < prev    next >
Encoding:
Text File  |  1996-07-16  |  4.7 KB  |  154 lines

  1. #Authors: Shmuel Cohen and Boris ???
  2.  
  3. viewclear();
  4.  
  5. pt1 = ctlpt( P3, 1.0, 0.5, 0, 6.0 );
  6. pt2 = ctlpt( P3, 1.0, 0.7, 0, 6.7 );
  7. pt3 = ctlpt( P3, 1.0, 0.9, 0, 6.9 );
  8. pt4 = ctlpt( P3, 1.0, 1.1, 0, 7.1 );
  9. pt5 = ctlpt( P3, 1.0, 1.3, 0, 7.4 );
  10. pt6 = ctlpt( P3, 1.0, 1.4, 0, 7.7 );
  11. pt7 = ctlpt( P3, 1.0, 1.5, 0, 7.8 );
  12. pt8 = ctlpt( P3, 1.0, 1.4, 0, 8.0 );
  13. pt9 = ctlpt( P3, 1.0, 0.5, 0, 8.0 );
  14.  
  15. br1 = CBEZIER ( list ( pt1, pt2, pt3 ) );
  16. br2 = CBEZIER ( list ( pt3, pt4, pt5 ) );
  17. br3 = CBEZIER ( list ( pt5, pt6, pt7 ) );
  18. br4 = CBEZIER ( list ( pt7, pt8, pt9 ) );
  19. brsum = br1 + br2 + br3 + br4;
  20. brsf = SURFREV( brsum );
  21.  
  22. cen  = vector ( 0.0, 0.0, 8.0 );
  23. st_pos = vector ( 0.5, 0.0, 8.0 );
  24. end_pos = vector ( 0.0, 0.0, 8.5 );
  25. cir = ARC ( st_pos, cen, end_pos );
  26. half_sf = SURFREV ( cir );
  27.  
  28. sf = sphere(vector(0,0,8.7), 0.2);
  29.  
  30. ptp1 = ctlpt( P3, 1.0, 0.5, 0, 5.9 );
  31. ptp2 = ctlpt( P3, 1.0, 0.9, 0, 6.0 );
  32. ptp3 = ctlpt( P3, 1.0, 0.5, 0, 6.1 );
  33. brp1 = CBEZIER ( list ( ptp1, ptp2, ptp3 ) );
  34. ptp1 = ctlpt( P3, 1.0, 0.5, 0, 6.1 );
  35. ptp2 = ctlpt( P3, 1.0, 1.0, 0, 6.2 );
  36. ptp3 = ctlpt( P3, 1.0, 0.5, 0, 6.3 );
  37. brp2 = CBEZIER ( list ( ptp1, ptp2, ptp3 ) );
  38. brp3 = brp1 + brp2;
  39. brsfp = SURFREV( brp3 );
  40.  
  41.  
  42. ptp5 = ctlpt( P3, 1.0, 0.8, 0, 6.7 );
  43. ptp6 = ctlpt( P3, 1.0, 2.0, 0, 6.9 );
  44. ptp7 = ctlpt( P3, 1.0, 0.9, 0, 7.1 );
  45. brp4 = CBEZIER ( list ( ptp5, ptp6, ptp7 ) );
  46. brsf2 = SURFREV( brp4 );
  47.  
  48. crown_list = list ( brsf, half_sf, sf, brsfp, brsf2 );
  49.  
  50.  
  51. pp1 = ctlpt( P3, 1.0, 0.75, 0, 0.0 );
  52. pp2 = ctlpt( P3, 1.0, 1.8, 0, 0.0 );
  53. pp3 = ctlpt( P3, 1.0, 1.85, 0, 0.125 );
  54. bb1 = CBEZIER ( list ( pp1, pp2, pp3 ) );
  55. bsf1 = SURFREV( bb1 );
  56.  
  57. #base1 = con2(vector(0,0,0), vector(0,0,0.5), 1.8, 2);
  58.  
  59. base1 = con2(vector(0,0,0.125), vector(0,0,0.25), 1.85, 1.95);
  60.  
  61. pp4 = ctlpt( P3, 1.0, 1.95, 0, 0.375 );
  62. pp5 = ctlpt( P3, 1.0, 2.0, 0, 0.5 );
  63. pp6 = ctlpt( P3, 1.0, 1.9, 0, 0.5 );
  64. bb2 = CBEZIER ( list ( pp4, pp5, pp6 ) );
  65. bsf2 = SURFREV( bb2 );
  66.  
  67. pp7 = ctlpt( P3, 1.0, 1.9, 0, 0.5 );
  68. pp8 = ctlpt( P3, 1.0, 1.8, 0, 0.5 );
  69. pp9 = ctlpt( P3, 1.0, 1.8, 0, 0.6 );
  70. bb3 = CBEZIER ( list ( pp7, pp8, pp9 ) );
  71. bsf3 = SURFREV( bb3 );
  72.  
  73. pp10 = ctlpt( P3, 1.0, 1.8, 0, 0.6 );
  74. pp11 = ctlpt( P3, 1.0, 1.8, 0, 0.7 );
  75. pp12 = ctlpt( P3, 1.0, 1.9, 0, 0.7 );
  76. bb4 = CBEZIER ( list ( pp10, pp11, pp12 ) );
  77. bsf4 = SURFREV( bb4 );
  78.  
  79. #base2 = con2(vector(0,0,0.5), vector(0,0,0.2), 1.8, 1.8);
  80.  
  81. pp13 = ctlpt( P3, 1.0, 1.9, 0, 0.7 );
  82. pp14 = ctlpt( P3, 1.0, 2.0, 0, 0.7 );
  83. pp15 = ctlpt( P3, 1.0, 1.9, 0, 0.83 );
  84. bb5 = CBEZIER ( list ( pp13, pp14, pp15 ) );
  85. bsf5 = SURFREV( bb5 );
  86.  
  87. #base3 = con2(vector(0,0,0.7), vector(0,0,1.3), 2, 1);
  88. base3 = con2(vector(0,0,0.83), vector(0,0,1.04), 1.9, 1.1);
  89.  
  90. pp16 = ctlpt( P3, 1.0, 1.1, 0, 1.87 );
  91. pp17 = ctlpt( P3, 1.0, 1.0, 0, 2.0 );
  92. pp18 = ctlpt( P3, 1.0, 1.0, 0, 2.1 );
  93. bb6 = CBEZIER ( list ( pp16, pp17, pp18 ) );
  94. bsf6 = SURFREV( bb6 );
  95.  
  96. #base4 = con2(vector(0,0,2), vector(0,0,0.35), 1, 1);
  97. base4 = con2(vector(0,0,2.1), vector(0,0,0.15), 1, 1);
  98.  
  99. pp19 = ctlpt( P3, 1.0, 1.0, 0, 2.25 );
  100. pp20 = ctlpt( P3, 1.0, 1.0, 0, 2.35 );
  101. pp21 = ctlpt( P3, 1.0, 0.95, 0, 2.715 );
  102. bb7 = CBEZIER ( list ( pp19, pp20, pp21 ) );
  103. bsf7 = SURFREV( bb7 );
  104.  
  105. base5 = con2(vector(0,0,2.715), vector(0,0,3.285), 0.95, 0.5);
  106.  
  107.  
  108.  
  109. color( crown_list, white );
  110. bsf_list = list ( bsf1, bsf2, bsf3, bsf4, bsf5, bsf6, bsf7 ); 
  111. color( bsf_list, white );
  112. base_list = list(base1,base3,base4,base5);
  113. color( base_list, white );
  114.  
  115. Cross = arc( vector( -0.11, -0.01, 0.0 ),
  116.              vector( -0.1,  -0.1,  0.0 ),
  117.              vector( -0.1,  -0.11, 0.0 ) ) +
  118.         arc( vector(  0.1,  -0.11, 0.0 ),
  119.              vector(  0.1,  -0.1,  0.0 ),
  120.              vector(  0.11, -0.1,  0.0 ) ) +
  121.         arc( vector(  0.11,  0.1,  0.0 ),
  122.              vector(  0.1,   0.1,  0.0 ),
  123.              vector(  0.1,   0.11, 0.0 ) ) +
  124.         arc( vector( -0.1,   0.11, 0.0 ),
  125.               vector( -0.1,   0.1,  0.0 ),
  126.               vector( -0.11,  0.1,  0.0 ) ) +
  127.         ctlpt( E2, -0.11, -0.1 );
  128.  
  129.  
  130. scaleCrv = cbspline( 3,
  131.                      list( ctlpt( E2, 0.05, 1.0 ),
  132.                            ctlpt( E2, 0.1,  0.0 ),
  133.                            ctlpt( E2, 0.2,  2.0 ),
  134.                            ctlpt( E2, 0.3,  0.0 ),
  135.                            ctlpt( E2, 0.4,  2.0 ),
  136.                            ctlpt( E2, 0.5,  0.0 ),
  137.                            ctlpt( E2, 0.6,  2.0 ),
  138.                            ctlpt( E2, 0.7,  0.0 ),
  139.                            ctlpt( E2, 0.8,  2.0 ),
  140.                            ctlpt( E2, 0.85, 1.0 ) ),
  141.                      list( KV_OPEN ) );
  142. Axis = circle(vector(0.0,0.0,8.1),1);
  143. Frame = circle( vector( 0, 0, 0 ), 1 ) *
  144.         rotx( 90 ) * trans( vector( 1.5, 0.0, 0.0 ) );
  145.  
  146. s = swpsclsrf( Cross, Axis, scaleCrv, off,4 );
  147.  
  148. color(s,white);
  149.  
  150. queen = list(bsf_list, base_list, crown_list, s);
  151. viewobj(queen);
  152.  
  153. free( cross );
  154.